﻿Public MustInherit Class WebSite
    Public Enum WebSites
        AmericaTV
        Antena3
        ATV
    End Enum

    Public Enum Sections
        MainWebSite = -1
        InChannel = -2
        InsideWebSite = -3
    End Enum

    Private mBaseURL As String
    Private mName As String
    Private mSite As WebSites

    Public Property Site As WebSites
        Get
            Return mSite
        End Get
        Protected Set(value As WebSites)
            mSite = value
        End Set
    End Property

    Public Property BaseURL As String
        Get
            Return mBaseURL
        End Get
        Protected Set(value As String)
            mBaseURL = value
        End Set
    End Property

    Public Property Name As String
        Get
            Return mName
        End Get
        Protected Set(value As String)
            mName = value
        End Set
    End Property

    Public MustOverride Function GetCategories() As List(Of Category)
    Public MustOverride Function GetSubCategories(parentCategory As Category) As List(Of Category)
    Public MustOverride Function GetVideos(category As Category) As List(Of VideoInfo)
    Public MustOverride Function GetVideoURL(video As VideoInfo) As String

    Public Shared Operator =(s1 As WebSite, s2 As WebSite) As Boolean
        If s1 Is Nothing AndAlso s2 IsNot Nothing Then Return False
        If s1 IsNot Nothing AndAlso s2 Is Nothing Then Return False
        If s1 Is Nothing AndAlso s2 Is Nothing Then Return False

        Return s1.Site = s2.Site
    End Operator

    Public Shared Operator <>(s1 As WebSite, s2 As WebSite) As Boolean
        Return Not (s1 = s2)
    End Operator
End Class
